import {ModuleWithProviders, NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
import {RouterModule} from '@angular/router';
import {TranslateModule} from '@ngx-translate/core';
import {NgZorroAntdModule} from 'ng-zorro-antd';
import {FileTypePipe} from './pipes/file-type.pipe';
import {ClipboardModule} from 'ngx-clipboard';
import { LoadingComponent } from './compontents/loading/loading.component';
import { AceModule } from 'ngx-ace-wrapper';

@NgModule({
  imports: [
    CommonModule,                 // 核心模块，必须
    FormsModule,                  // 表单支持
    RouterModule,                 // 路由依赖模块
    TranslateModule,             // 国际化
    ReactiveFormsModule,         // 表单支持
    NgZorroAntdModule,            // zorro
    ClipboardModule,
    AceModule
  ],
  declarations: [
    FileTypePipe,               // 识别文件类型，返回自定义图标类型
    LoadingComponent
  ],
  exports: [
    CommonModule,           // 核心模块，必须
    RouterModule,           // 路由依赖模块
    FormsModule,            // 表单支持
    ReactiveFormsModule,    // 表单支持
    TranslateModule,            // 国际化
    NgZorroAntdModule,            // zorro
    FileTypePipe,               // 识别文件类型，返回自定义图标类型
    LoadingComponent,         // 加载中
    ClipboardModule,
    AceModule
  ]
})
export class SharedModule {
  static forRoot(): ModuleWithProviders {
    return {
      ngModule: SharedModule
    };
  }
}
